package two_workQueue;

import com.rabbitmq.client.CancelCallback;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.DeliverCallback;
import util.RabbitMqUtils;

/**
 * @BelongsProject: RabbitMQ
 * @BelongsPackage: workQueue
 * @Author: HUI
 * @CreateTime: 2022-04-13 09:48
 * @Description: 多线程式接收消息
 */
public class MyWorks {

    private static final String QUEUE_NAME = "work";

    public  void getWork() throws Exception {
        String threadName = Thread.currentThread().getName();
        Channel channel = RabbitMqUtils.getChannel();
        DeliverCallback deliverCallback = (consumerTag, delivery) -> {
            String receivedMessage = new String(delivery.getBody());
            System.out.println(threadName+"接收到消息:" + receivedMessage);
        };

        CancelCallback cancelCallback = (consumerTag) -> {
            System.out.println(consumerTag + "消费者取消消费接口回调逻辑");
        };

        System.out.println(threadName+"消费者启动等待消费.................. ");
        channel.basicConsume(QUEUE_NAME,true,deliverCallback,cancelCallback);
    }


    public static void main(String[] args) throws Exception {
      new Thread(() -> {
          try {
              new MyWorks().getWork();
          } catch (Exception e) {
              e.printStackTrace();
          }
      }).start();


      new MyWorks().getWork();

    }
}



